package com.woniuxy.ticketmovie.gen;/*
@author houguai
@create 2021-02-21 20:02
*/

import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;

public class Generate {


    public static void main(String[] args) {
        //全局设置
        GlobalConfig globalConfig = new GlobalConfig();
        //生成的文件输出到哪个位置，存放到哪个文件夹
        globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
        globalConfig.setAuthor("movie");     //作者
        globalConfig.setOpen(false);              //是否打开输出目录
        globalConfig.setFileOverride(true);     //反复生成时是否覆盖
        //设置service接口名字，%s为获取实体类名字，如果不设置Service
        //接口将以大写字母I开头
        globalConfig.setServiceName("%sService");
        globalConfig.setControllerName("%sController");//设置controller的名字
        globalConfig.setBaseColumnList(true);    //是否生成字段的SQL代码片段
        globalConfig.setEnableCache(true);        //是否开启二级缓存
        globalConfig.setBaseResultMap(true);    //是否生成基本的resultMap
        //设置数据源
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/movie?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC");
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("123456");
        //配置策略
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setCapitalMode(true);        //全局大写命名
        strategyConfig.setEntityLombokModel(true);     //是否为lombok样式的entity
        strategyConfig.setTablePrefix(new String[]{"mall_"}); //忽略表前缀 类名相关 User
        //strategyConfig.setFieldPrefix(new String[]{""});//忽略字段前缀  属性相关
        //包名策略
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.woniu.movie")    //父包名
                .setController("controller")        //controller包名
                .setEntity("entity")                //entity包名
                .setMapper("mapper")                //mapper接口包名
                .setXml("mapper.xml")                //mapper.xml包名
                .setService("service")                //service包名
                .setServiceImpl("service.impl");    //service实现类包名
        //代码生成器
        AutoGenerator autoGenerator = new AutoGenerator();
        //生成器设置属性
        autoGenerator.setGlobalConfig(globalConfig);
        autoGenerator.setDataSource(dataSourceConfig);
        autoGenerator.setStrategy(strategyConfig);
        autoGenerator.setPackageInfo(packageConfig);
        //执行生成代码
        autoGenerator.execute();
    }

}


